package com.ruoyi.project.purchase.service;

import java.util.List;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.domain.ResultBean;
import com.ruoyi.project.purchase.domain.ProjectClearance;
import com.ruoyi.project.purchase.domain.pojo.DepotDetailBean;
import com.ruoyi.project.purchase.domain.pojo.DepotHeadItem;

/**
 * 项目清仓Service接口
 *
 * @author you
 * @date 2022-09-27
 */
public interface IProjectClearanceService
{
    /**
     * 查询项目清仓
     *
     * @param id 项目清仓主键
     * @return 项目清仓
     */
    public ProjectClearance selectProjectClearanceById(Long id);

    /**
     * 查询项目清仓列表
     *
     * @param projectClearance 项目清仓
     * @return 项目清仓集合
     */
    public List<ProjectClearance> selectProjectClearanceList(ProjectClearance projectClearance);

    /**
     * 仓库剩余数量转移
     * 1.项目库出库
     * 2.总库入库
     * 3.生成相应出入库记录
     * 4.修改项目库出库数量
     */
    public AjaxResult editProjectClearance(DepotHeadItem depotHeadItem);

    /**
     * 查询单据主表及子表信息
     *
     * @param id 单据主表主键
     * @return 单据主表及子表信息
     */
    public DepotHeadItem selectRyDepotDetailByDepotId(Long id);

    /**
     * 新增项目清仓
     *
     * @param projectClearance 项目清仓
     * @return 结果
     */
    public int insertProjectClearance(ProjectClearance projectClearance);

    /**
     * 修改项目清仓
     *
     * @param projectClearance 项目清仓
     * @return 结果
     */
    public int updateProjectClearance(ProjectClearance projectClearance);

    /**
     * 批量删除项目清仓
     *
     * @param ids 需要删除的项目清仓主键集合
     * @return 结果
     */
    public int deleteProjectClearanceByIds(Long[] ids);

    /**
     * 删除项目清仓信息
     *
     * @param id 项目清仓主键
     * @return 结果
     */
    public int deleteProjectClearanceById(Long id);
}
